package cn.com.surker.production.entity;

import cn.com.surker.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 生产运输结算信息表
 * </p>
 *
 * @author admin
 * @since 2025-06-06
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ProductionTransportBill extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 公司ID
     */
    private Long orgId;

    /**
     * 公司
     */
    private String orgName;

    /**
     * 结算时间
     */
    private String today;

    /**
     * 项目ID
     */
    private Long conId;

    /**
     * 项目名称
     */
    private String conName;

    private Long tranConId;
    /**
     * 运输供应商ID
     */
    private Long supplierId;

    /**
     * 运输供应商
     */
    private String supplier;

    /**
     * 运输类型TransportTypeEnum0：运输结算，1：水或砂浆，2：返料)
     */
    private Integer tranType;

    /**
     * 计量方式(0:方量,1:吨位,2:车次,3:运距,CountBillTypeEnum)
     */
    private Integer countType;

    /**
     * 车辆类型(CarModelTypeEnum)
     */
    private Integer carModelType;

    /**
     * 道路类型(0:,国道1:高速,RoadTypeEnum)
     */
    private Integer roadType;

    /**
     * 是否经超限(0:不经过超限站,1经过超限站:,OverLimitEnum)
     */
    private Integer overLimit;

    /**
     * 价格类型(0:结算,1:补贴,2:冲账,BillPriceTypeEnum)
     */
    private Integer priceType;

    /**
     * 是否结算(0:结算1:不结算)
     */
    private Integer isBill;

    /**
     * 是否自动(0:自动1:手动)
     */
    private Integer isAuto;

    /**
     * 结算方量
     */
    private Double stere;

    /**
     * 调整方量
     */
    private Double billStere;

    /**
     * 车次
     */
    private Integer tranNo;

    /**
     * 运距
     */
    private Double distance;

    /**
     * 油价系数
     */
    private Double oilPrice;
    /**
     * 单价
     */
    private Double price;

    /**
     * 结算金额
     */
    private Double billMoney;

    /**
     * 是否导出(0:未导出1:已导出)
     */
    private Integer isExport;

    /**
     * 结算开始时间
     */
    private String startTime;

    /**
     * 结算结束时间
     */
    private String endTime;

    /**
     * 生产审核(0:未审核1:已审核)
     */
    private Integer isProduction;

    /**
     * 审核人
     */
    private String checker;

    /**
     * 审核时间
     */
    private String checkTime;

    /**
     * 财务审核(0:未审核1:已审核)
     */
    private Integer isFinance;

    /**
     * 财务审核人
     */
    private String finance;

    /**
     * 财务审核时间
     */
    private String financeTime;
    public ProductionTransportBill(){}
    public ProductionTransportBill(Long orgId, String orgName, String today, Long conId, String conName, Long tranConId, Long supplierId, String supplier, Integer tranType, Integer countType, Integer carModelType, Integer roadType, Integer overLimit, Integer priceType, Integer isBill, Integer isAuto, Double stere, Double billStere, Integer tranNo, Double distance, Double oilPrice, Double price, Double billMoney, Integer isExport, String startTime, String endTime, Integer isProduction, String checker, String checkTime, Integer isFinance, String finance, String financeTime) {
        this.orgId = orgId;
        this.orgName = orgName;
        this.today = today;
        this.conId = conId;
        this.conName = conName;
        this.tranConId = tranConId;
        this.supplierId = supplierId;
        this.supplier = supplier;
        this.tranType = tranType;
        this.countType = countType;
        this.carModelType = carModelType;
        this.roadType = roadType;
        this.overLimit = overLimit;
        this.priceType = priceType;
        this.isBill = isBill;
        this.isAuto = isAuto;
        this.stere = stere;
        this.billStere = billStere;
        this.tranNo = tranNo;
        this.distance = distance;
        this.oilPrice = oilPrice;
        this.price = price;
        this.billMoney = billMoney;
        this.isExport = isExport;
        this.startTime = startTime;
        this.endTime = endTime;
        this.isProduction = isProduction;
        this.checker = checker;
        this.checkTime = checkTime;
        this.isFinance = isFinance;
        this.finance = finance;
        this.financeTime = financeTime;
    }
}
